package graphique;

import ij.process.ImageProcessor;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import application.CannyEdge;
import application.ToGrayScale;

public class CannyListener implements ActionListener {

	@Override
	public void actionPerformed(ActionEvent arg0) {
		/*
		 * verifie si l'image est bien en niveaux de gris si elle l'est applique un filtre de canny sinon
		 * la mets en niveaux de gris et applique un filtre de canny
		 */
		ImageProcessor ip = Principal.image;
		boolean couleur = false;
		int[] iArray = {0,0,0};
		int i=0, j =0;
		while(!couleur && i<ip.getWidth()){
			while(!couleur && j<ip.getHeight()){
				ip.getPixel(i, j, iArray );
				couleur=(iArray[1]!=0 || iArray[2]!=0);
				j++;
			}
			i++;
		}
		if(couleur){
			Principal.image=ToGrayScale.run(ip);
			Principal.image = CannyEdge.run(Principal.image);
		}else{
			Principal.image = CannyEdge.run(Principal.image);
		}
		Principal.actualiseImage();
	}

}
